package com.ruoyi.domain;

import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 车辆出场记录对象 parking_record_out
 * 
 * @author dongdong
 * @date 2025-08-23
 */
public class ParkingRecordOut extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键ID */
    private String id;

    /** 平台ID */
    @Excel(name = "平台ID")
    private String platformId;

    /** 唯一ID */
    @Excel(name = "唯一ID")
    private String uniqueId;

    /** 抓拍序列号 */
    @Excel(name = "抓拍序列号")
    private String captureSeq;

    /** 记录ID */
    @Excel(name = "记录ID")
    private String recordId;

    /** 停车场编码 */
    @Excel(name = "停车场编码")
    private String parkingLotCode;

    /** 停车场名称 */
    @Excel(name = "停车场名称")
    private String parkingLotName;

    /** 车主姓名 */
    @Excel(name = "车主姓名")
    private String ownerName;

    /** 车主电话 */
    @Excel(name = "车主电话")
    private String ownerPhone;

    /** 车主类型 */
    @Excel(name = "车主类型")
    private Integer ownerType;

    /** 车牌颜色 */
    @Excel(name = "车牌颜色")
    private Integer carNumColor;

    /** 车辆颜色 */
    @Excel(name = "车辆颜色")
    private Integer carColor;

    /** 车辆列表类型 */
    @Excel(name = "车辆列表类型")
    private Integer carListType;

    /** 车牌号码 */
    @Excel(name = "车牌号码")
    private String carNum;

    /** 车辆状态 */
    @Excel(name = "车辆状态")
    private Integer carStatus;

    /** 车辆类型 */
    @Excel(name = "车辆类型")
    private Integer carType;

    /** 出口设备通道编码 */
    @Excel(name = "出口设备通道编码")
    private String exitItcDevChnCode;

    /** 出口设备通道名称 */
    @Excel(name = "出口设备通道名称")
    private String exitItcDevChnName;

    /** 车辆出场时间 (UTC时间) */
    @Excel(name = "出场时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime carOutTime;

    /** 出口车道编码 */
    @Excel(name = "出口车道编码")
    private String exitLaneCode;

    /** 图片路径 */
    @Excel(name = "图片路径")
    private String picPath;

    /** 图片数据(base64编码) */
    @Excel(name = "图片数据(base64编码)")
    private String picData;

    /** 监控类型 (0:未知,1:视频监控,2:图片抓拍等) */
    @Excel(name = "监控类型 (0:未知,1:视频监控,2:图片抓拍等)")
    private Integer monitorType;

    /**
     * 部门ID
     */
    @Excel(name = "部门ID")
    private Long deptId;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setPlatformId(String platformId) 
    {
        this.platformId = platformId;
    }

    public String getPlatformId() 
    {
        return platformId;
    }
    public void setUniqueId(String uniqueId) 
    {
        this.uniqueId = uniqueId;
    }

    public String getUniqueId() 
    {
        return uniqueId;
    }
    public void setCaptureSeq(String captureSeq) 
    {
        this.captureSeq = captureSeq;
    }

    public String getCaptureSeq() 
    {
        return captureSeq;
    }
    public void setRecordId(String recordId) 
    {
        this.recordId = recordId;
    }

    public String getRecordId() 
    {
        return recordId;
    }
    public void setParkingLotCode(String parkingLotCode) 
    {
        this.parkingLotCode = parkingLotCode;
    }

    public String getParkingLotCode() 
    {
        return parkingLotCode;
    }
    public void setParkingLotName(String parkingLotName) 
    {
        this.parkingLotName = parkingLotName;
    }

    public String getParkingLotName() 
    {
        return parkingLotName;
    }
    public void setOwnerName(String ownerName) 
    {
        this.ownerName = ownerName;
    }

    public String getOwnerName() 
    {
        return ownerName;
    }
    public void setOwnerPhone(String ownerPhone) 
    {
        this.ownerPhone = ownerPhone;
    }

    public String getOwnerPhone() 
    {
        return ownerPhone;
    }
    public void setOwnerType(Integer ownerType) 
    {
        this.ownerType = ownerType;
    }

    public Integer getOwnerType() 
    {
        return ownerType;
    }
    public void setCarNumColor(Integer carNumColor) 
    {
        this.carNumColor = carNumColor;
    }

    public Integer getCarNumColor() 
    {
        return carNumColor;
    }
    public void setCarColor(Integer carColor) 
    {
        this.carColor = carColor;
    }

    public Integer getCarColor() 
    {
        return carColor;
    }
    public void setCarListType(Integer carListType) 
    {
        this.carListType = carListType;
    }

    public Integer getCarListType() 
    {
        return carListType;
    }
    public void setCarNum(String carNum) 
    {
        this.carNum = carNum;
    }

    public String getCarNum() 
    {
        return carNum;
    }
    public void setCarStatus(Integer carStatus) 
    {
        this.carStatus = carStatus;
    }

    public Integer getCarStatus() 
    {
        return carStatus;
    }
    public void setCarType(Integer carType) 
    {
        this.carType = carType;
    }

    public Integer getCarType() 
    {
        return carType;
    }
    public void setExitItcDevChnCode(String exitItcDevChnCode) 
    {
        this.exitItcDevChnCode = exitItcDevChnCode;
    }

    public String getExitItcDevChnCode() 
    {
        return exitItcDevChnCode;
    }
    public void setExitItcDevChnName(String exitItcDevChnName) 
    {
        this.exitItcDevChnName = exitItcDevChnName;
    }

    public String getExitItcDevChnName() 
    {
        return exitItcDevChnName;
    }
    public void setCarOutTime(LocalDateTime carOutTime)
    {
        this.carOutTime = carOutTime;
    }

    public LocalDateTime getCarOutTime()
    {
        return carOutTime;
    }
    public void setExitLaneCode(String exitLaneCode) 
    {
        this.exitLaneCode = exitLaneCode;
    }

    public String getExitLaneCode() 
    {
        return exitLaneCode;
    }
    public void setPicPath(String picPath) 
    {
        this.picPath = picPath;
    }

    public String getPicPath() 
    {
        return picPath;
    }
    public void setPicData(String picData) 
    {
        this.picData = picData;
    }

    public String getPicData() 
    {
        return picData;
    }
    public void setMonitorType(Integer monitorType) 
    {
        this.monitorType = monitorType;
    }

    public Integer getMonitorType() 
    {
        return monitorType;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("platformId", getPlatformId())
            .append("uniqueId", getUniqueId())
            .append("captureSeq", getCaptureSeq())
            .append("recordId", getRecordId())
            .append("parkingLotCode", getParkingLotCode())
            .append("parkingLotName", getParkingLotName())
            .append("ownerName", getOwnerName())
            .append("ownerPhone", getOwnerPhone())
            .append("ownerType", getOwnerType())
            .append("carNumColor", getCarNumColor())
            .append("carColor", getCarColor())
            .append("carListType", getCarListType())
            .append("carNum", getCarNum())
            .append("carStatus", getCarStatus())
            .append("carType", getCarType())
            .append("exitItcDevChnCode", getExitItcDevChnCode())
            .append("exitItcDevChnName", getExitItcDevChnName())
            .append("carOutTime", getCarOutTime())
            .append("exitLaneCode", getExitLaneCode())
            .append("picPath", getPicPath())
            .append("picData", getPicData())
            .append("monitorType", getMonitorType())
            .append("deptId", getDeptId())
            .toString();
    }
}
